package com.das.mechanic_base.bean.greendao;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;

/**
 * 存储精检的推荐服务项目购物车数据
 */
public class AloneServiceListBean implements Serializable{

    /**
     * 预计保养日期 需要计算
     * warningDate(预计保养日期):2023-05-01（计算方式：剩余天数=(nextReplaceCycleKm-currentMiles)/perMiles 再换算成日期显示）
     * 移动端每次提交一个系统答案时也提交一下触发推荐的购物车数据
     */
    private Long id;

    /**
     * 唯一标识 workBaseId + 服务sn
     */
    private String only_logo;

    private long workBaseId;

    /**
     * 服务项目名称
     */
    private String touchServiceBaseName;

    /**
     * 存储触发此服务项目的题目id
     */
    private List<Long> touchQuestionBaseIdList;

    /**
     * 存储触发此服务项目的题目描述 即title
     */
    private List<String> touchQuestionBaseDescriptionList;

    private List<String> systemDescriptionList;

    /**
     * key 触发此题目的题目id  value 触发此题目的数值
     */
    private HashMap<String,Integer> touchQuestionIdValueMap;

    /**
     * 服务项目sn
     */
    private String touchServiceSn;

    /**
     * 当前总里程
     */
    private double currentMiles;

    /**
     * 日均行驶里程
     */
    private double perMiles;

    /**
     * 是否是系统推荐的服务项目
     */
    private List<Integer> systemList;

    /**
     * 预计保养里程 也就是显示什么时候保养里程的数据
     */
    private double recommendSafeMiles;

    /**
     * 到期提醒时间
     */
    private String warningDate;

    /**
     * 保养总里程的计算方式 默认为0
     * 0 保养总里程
     * 1 保养总时间
     */
    private String reductionType;

    private String amount;

    //检测点ID与答案id 存储在此集合中说明是系统推荐服务
    private List<IdBean> questionAndOptionIdVOList;

    private long carId;

    private boolean seleced;

    // 检测点id
    private long questionBaseId;

    // 答案id
    private long optionsId;

    public long getQuestionBaseId() {
        return questionBaseId;
    }

    public AloneServiceListBean setQuestionBaseId(long questionBaseId) {
        this.questionBaseId = questionBaseId;
        return this;
    }

    public long getOptionsId() {
        return optionsId;
    }

    public AloneServiceListBean setOptionsId(long optionsId) {
        this.optionsId = optionsId;
        return this;
    }

    public AloneServiceListBean() {

    }

    public String getAmount() {
        return amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public boolean isSeleced() {
        return seleced;
    }

    public void setSeleced(boolean seleced) {
        this.seleced = seleced;
    }

    public long getCarId() {
        return carId;
    }

    public void setCarId(long carId) {
        this.carId = carId;
    }

    public List<IdBean> getQuestionAndOptionIdVOList() {
        return questionAndOptionIdVOList;
    }

    public void setQuestionAndOptionIdVOList(List<IdBean> questionAndOptionIdVOList) {
        this.questionAndOptionIdVOList = questionAndOptionIdVOList;
    }

    public double getRecommendSafeMiles() {
        return this.recommendSafeMiles;
    }

    public void setRecommendSafeMiles(double recommendSafeMiles) {
        this.recommendSafeMiles = recommendSafeMiles;
    }

    public List<Integer> getSystemList() {
        return this.systemList;
    }

    public void setSystemList(List<Integer> systemList) {
        this.systemList = systemList;
    }

    public double getPerMiles() {
        return this.perMiles;
    }

    public void setPerMiles(double perMiles) {
        this.perMiles = perMiles;
    }

    public double getCurrentMiles() {
        return this.currentMiles;
    }

    public void setCurrentMiles(double currentMiles) {
        this.currentMiles = currentMiles;
    }

    public String getTouchServiceSn() {
        return this.touchServiceSn;
    }

    public void setTouchServiceSn(String touchServiceSn) {
        this.touchServiceSn = touchServiceSn;
    }

    public List<String> getTouchQuestionBaseDescriptionList() {
        return this.touchQuestionBaseDescriptionList;
    }

    public void setTouchQuestionBaseDescriptionList(List<String> touchQuestionBaseDescriptionList) {
        this.touchQuestionBaseDescriptionList = touchQuestionBaseDescriptionList;
    }

    public List<Long> getTouchQuestionBaseIdList() {
        return this.touchQuestionBaseIdList;
    }

    public void setTouchQuestionBaseIdList(List<Long> touchQuestionBaseIdList) {
        this.touchQuestionBaseIdList = touchQuestionBaseIdList;
    }

    public String getTouchServiceBaseName() {
        return this.touchServiceBaseName;
    }

    public void setTouchServiceBaseName(String touchServiceBaseName) {
        this.touchServiceBaseName = touchServiceBaseName;
    }

    public long getWorkBaseId() {
        return this.workBaseId;
    }

    public void setWorkBaseId(long workBaseId) {
        this.workBaseId = workBaseId;
    }

    public String getOnly_logo() {
        return this.only_logo;
    }

    public void setOnly_logo(String only_logo) {
        this.only_logo = only_logo;
    }

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public HashMap<String, Integer> getTouchQuestionIdValueMap() {
        return touchQuestionIdValueMap;
    }

    public void setTouchQuestionIdValueMap(HashMap<String, Integer> touchQuestionIdValueMap) {
        this.touchQuestionIdValueMap = touchQuestionIdValueMap;
    }

    public String getReductionType() {
        return this.reductionType;
    }

    public void setReductionType(String reductionType) {
        this.reductionType = reductionType;
    }

    public String getWarningDate() {
        return this.warningDate;
    }

    public void setWarningDate(String warningDate) {
        this.warningDate = warningDate;
    }

    public List<String> getSystemDescriptionList() {
        return systemDescriptionList;
    }

    public void setSystemDescriptionList(List<String> systemDescriptionList) {
        this.systemDescriptionList = systemDescriptionList;
    }

    @Override
    public String toString() {
        return "{" +
                "\"touchServiceBaseName\":\'" + touchServiceBaseName + "\'" +
                ", \"touchQuestionBaseIdList\":" + touchQuestionBaseIdList +
                ", \"questionAndOptionIdVOList\":" + questionAndOptionIdVOList +
                ", \"questionBaseId\":" + questionBaseId +
                ", \"optionsId\":" + optionsId +
                '}';
    }

    public static class IdBean implements Serializable {
        private long questionBaseId;
        private long optionsId;

        public IdBean() {
        }

        public IdBean(long questionBaseId, long optionsId) {
            this.questionBaseId = questionBaseId;
            this.optionsId = optionsId;
        }

        public long getQuestionBaseId() {
            return questionBaseId;
        }

        public void setQuestionBaseId(long questionBaseId) {
            this.questionBaseId = questionBaseId;
        }

        public long getOptionsId() {
            return optionsId;
        }

        public void setOptionsId(long optionsId) {
            this.optionsId = optionsId;
        }

        @Override
        public String toString() {
            return "{" +
                    "\"questionBaseId\":" + questionBaseId +
                    ", \"optionsId\":" + optionsId +
                    '}';
        }
    }
}
